Skip to content

SerialUpload: skip first sleep on MacOS Catalina #9303

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 1 commit into from

Conversation

facchinm
Copy link
Member

@facchinm facchinm commented Oct 10, 2019

From log analysis (I don't have a Mac with Catalina yet for testing in real life) is appears that:

  • bootloader is triggered via 1200bps touch
  • the bootloader portname is the same as sketch one
  • the transition is very fast (if it exist at all)

Removing the first sleep after the touch could allow the IDE to recognize port disappearance .

Could fix #9290 and #8626

@gvarisco

@facchinm facchinm added OS: OSX Specific to the Mac OS X (macOS) version of the Arduino IDE USB: CDC serial Serial interface used by MCUs with native USB (e.g. Leonardo) to communicate with the computer labels Oct 10, 2019
@fubyo
Copy link

fubyo commented Oct 10, 2019

Just checked the following build with a Pro Micro on Catalina (10.15)

⬇️ http://downloads.arduino.cc/javaide/pull_requests/arduino-PR-9303-BUILD-899-macosx.zip

I could not upload any sketches. Still getting

Connecting to programmer: .avrdude: butterfly_recv(): programmer is not responding
avrdude: ser_recv(): read error: Device not configured

etc.

@CSab80
Copy link

CSab80 commented Oct 10, 2019

Hi,
Still the same problem with Leonardo and Catalina Final.
No problem with Nano (as the last build).
Regards.

@zixzixzix
Copy link

not worked Leonardo and Catalina Final
`Arduino: 1.8.11 (Mac OS X), Board: "Arduino Leonardo"

Sketch uses 3956 bytes (13%) of program storage space. Maximum is 28672 bytes.
Global variables use 149 bytes (5%) of dynamic memory, leaving 2411 bytes for local variables. Maximum is 2560 bytes.

avrdude: ser_recv(): read error: Device not configured
avrdude: butterfly_recv(): programmer is not responding
avrdude: ser_drain(): read error: Device not configured
avrdude: ser_send(): write error: Device not configured
avrdude: ser_recv(): read error: Device not configured
avrdude: butterfly_recv(): programmer is not responding
avrdude: ser_send(): write error: Device not configured
avrdude: ser_recv(): read error: Device not configured
avrdude: butterfly_recv(): programmer is not responding
avrdude: ser_recv(): read error: Device not configured
avrdude: butterfly_recv(): programmer is not responding
avrdude: ser_send(): write error: Device not configured
avrdude: ser_recv(): read error: Device not configured
avrdude: butterfly_recv(): programmer is not responding
Found programmer: Id = ""; type = �
Software Version = �.�; Hardware Version = �.�
avrdude: ser_send(): write error: Device not configured
the selected serial port Software Version = �.�; Hardware Version = �.�
does not exist or your board is not connected
avrdude: ser_recv(): read error: Device not configured
avrdude: butterfly_recv(): programmer is not responding
avrdude: ser_send(): write error: Device not configured
avrdude: ser_recv(): read error: Device not configured
avrdude: butterfly_recv(): programmer is not responding
avrdude: error: buffered memory access not supported. Maybe it isn't
a butterfly/AVR109 but a AVR910 device?
avrdude: initialization failed, rc=-1
Double check connections and try again, or use -F to override
this check.

avrdude: ser_send(): write error: Device not configured
avrdude: ser_recv(): read error: Device not configured
avrdude: butterfly_recv(): programmer is not responding
avrdude: error: programmer did not respond to command: leave prog mode
avrdude: ser_send(): write error: Device not configured
avrdude: ser_recv(): read error: Device not configured
avrdude: butterfly_recv(): programmer is not responding
avrdude: error: programmer did not respond to command: exit bootloader
avrdude: ser_close(): can't reset attributes for device: Device not configured

This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.
`

@zixzixzix
Copy link

Arduino: 1.8.11 (Mac OS X), Board: "Arduino Leonardo"

Sketch uses 3956 bytes (13%) of program storage space. Maximum is 28672 bytes.
Global variables use 149 bytes (5%) of dynamic memory, leaving 2411 bytes for local variables. Maximum is 2560 bytes.
Forcing reset using 1200bps open/close on port /dev/cu.usbmodem14201
PORTS {/dev/cu.AirPods-WirelessiAP-1, /dev/cu.Bluetooth-Incoming-Port, /dev/cu.EV3-SerialPort, /dev/cu.usbmodem14201, /dev/cu.zixiPhone6-WirelessiAP, /dev/tty.AirPods-WirelessiAP-1, /dev/tty.Bluetooth-Incoming-Port, /dev/tty.EV3-SerialPort, /dev/tty.usbmodem14201, /dev/tty.zixiPhone6-WirelessiAP, } / {/dev/cu.AirPods-WirelessiAP-1, /dev/cu.Bluetooth-Incoming-Port, /dev/cu.EV3-SerialPort, /dev/cu.usbmodem14201, /dev/cu.zixiPhone6-WirelessiAP, /dev/tty.AirPods-WirelessiAP-1, /dev/tty.Bluetooth-Incoming-Port, /dev/tty.EV3-SerialPort, /dev/tty.usbmodem14201, /dev/tty.zixiPhone6-WirelessiAP, } => {}
PORTS {/dev/cu.AirPods-WirelessiAP-1, /dev/cu.Bluetooth-Incoming-Port, /dev/cu.EV3-SerialPort, /dev/cu.usbmodem14201, /dev/cu.zixiPhone6-WirelessiAP, /dev/tty.AirPods-WirelessiAP-1, /dev/tty.Bluetooth-Incoming-Port, /dev/tty.EV3-SerialPort, /dev/tty.usbmodem14201, /dev/tty.zixiPhone6-WirelessiAP, } / {/dev/cu.AirPods-WirelessiAP-1, /dev/cu.Bluetooth-Incoming-Port, /dev/cu.EV3-SerialPort, /dev/cu.usbmodem14201, /dev/cu.zixiPhone6-WirelessiAP, /dev/tty.AirPods-WirelessiAP-1, /dev/tty.Bluetooth-Incoming-Port, /dev/tty.EV3-SerialPort, /dev/tty.usbmodem14201, /dev/tty.zixiPhone6-WirelessiAP, } => {}
PORTS {/dev/cu.AirPods-WirelessiAP-1, /dev/cu.Bluetooth-Incoming-Port, /dev/cu.EV3-SerialPort, /dev/cu.usbmodem14201, /dev/cu.zixiPhone6-WirelessiAP, /dev/tty.AirPods-WirelessiAP-1, /dev/tty.Bluetooth-Incoming-Port, /dev/tty.EV3-SerialPort, /dev/tty.usbmodem14201, /dev/tty.zixiPhone6-WirelessiAP, } / {/dev/cu.AirPods-WirelessiAP-1, /dev/cu.Bluetooth-Incoming-Port, /dev/cu.EV3-SerialPort, /dev/cu.zixiPhone6-WirelessiAP, /dev/tty.AirPods-WirelessiAP-1, /dev/tty.Bluetooth-Incoming-Port, /dev/tty.EV3-SerialPort, /dev/tty.zixiPhone6-WirelessiAP, } => {}
PORTS {/dev/cu.AirPods-WirelessiAP-1, /dev/cu.Bluetooth-Incoming-Port, /dev/cu.EV3-SerialPort, /dev/cu.zixiPhone6-WirelessiAP, /dev/tty.AirPods-WirelessiAP-1, /dev/tty.Bluetooth-Incoming-Port, /dev/tty.EV3-SerialPort, /dev/tty.zixiPhone6-WirelessiAP, } / {/dev/cu.AirPods-WirelessiAP-1, /dev/cu.Bluetooth-Incoming-Port, /dev/cu.EV3-SerialPort, /dev/cu.zixiPhone6-WirelessiAP, /dev/tty.AirPods-WirelessiAP-1, /dev/tty.Bluetooth-Incoming-Port, /dev/tty.EV3-SerialPort, /dev/tty.zixiPhone6-WirelessiAP, } => {}
PORTS {/dev/cu.AirPods-WirelessiAP-1, /dev/cu.Bluetooth-Incoming-Port, /dev/cu.EV3-SerialPort, /dev/cu.zixiPhone6-WirelessiAP, /dev/tty.AirPods-WirelessiAP-1, /dev/tty.Bluetooth-Incoming-Port, /dev/tty.EV3-SerialPort, /dev/tty.zixiPhone6-WirelessiAP, } / {/dev/cu.AirPods-WirelessiAP-1, /dev/cu.Bluetooth-Incoming-Port, /dev/cu.EV3-SerialPort, /dev/cu.usbmodem14201, /dev/cu.zixiPhone6-WirelessiAP, /dev/tty.AirPods-WirelessiAP-1, /dev/tty.Bluetooth-Incoming-Port, /dev/tty.EV3-SerialPort, /dev/tty.usbmodem14201, /dev/tty.zixiPhone6-WirelessiAP, } => {/dev/cu.usbmodem14201, /dev/tty.usbmodem14201, }
Found upload port: /dev/cu.usbmodem14201
/Users/zix/Downloads/Arduino 2.app/Contents/Java/hardware/tools/avr/bin/avrdude -C/Users/zix/Downloads/Arduino 2.app/Contents/Java/hardware/tools/avr/etc/avrdude.conf -v -patmega32u4 -cavr109 -P/dev/cu.usbmodem14201 -b57600 -D -Uflash:w:/var/folders/5f/0grbdtvn327_mtf2gtjcnp7c0000gn/T/arduino_build_405762/Blink.ino.hex:i

avrdude: Version 6.3-20190619
Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
Copyright (c) 2007-2014 Joerg Wunsch

     System wide configuration file is "/Users/zix/Downloads/Arduino 2.app/Contents/Java/hardware/tools/avr/etc/avrdude.conf"
     User configuration file is "/Users/zix/.avrduderc"
     User configuration file does not exist or is not a regular file, skipping

     Using Port                    : /dev/cu.usbmodem14201
     Using Programmer              : avr109
     Overriding Baud Rate          : 57600
     AVR Part                      : ATmega32U4
     Chip Erase delay              : 9000 us
     PAGEL                         : PD7
     BS2                           : PA0
     RESET disposition             : dedicated
     RETRY pulse                   : SCK
     serial program mode           : yes
     parallel program mode         : yes
     Timeout                       : 200
     StabDelay                     : 100
     CmdexeDelay                   : 25
     SyncLoops                     : 32
     ByteDelay                     : 0
     PollIndex                     : 3
     PollValue                     : 0x53
     Memory Detail                 :

                              Block Poll               Page                       Polled
       Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
       ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
       eeprom        65    20     4    0 no       1024    4      0  9000  9000 0x00 0x00
       flash         65     6   128    0 yes     32768  128    256  4500  4500 0x00 0x00
       lfuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
       hfuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
       efuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
       lock           0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
       calibration    0     0     0    0 no          1    0      0     0     0 0x00 0x00
       signature      0     0     0    0 no          3    0      0     0     0 0x00 0x00

     Programmer Type : butterfly
     Description     : Atmel AppNote AVR109 Boot Loader

Connecting to programmer: .avrdude: butterfly_recv(): programmer is not responding

avrdude: ser_recv(): read error: Device not configured
avrdude: butterfly_recv(): programmer is not responding
avrdude: ser_drain(): read error: Device not configured
avrdude: ser_send(): write error: Device not configured
avrdude: ser_recv(): read error: Device not configured
avrdude: butterfly_recv(): programmer is not responding
avrdude: ser_send(): write error: Device not configured
avrdude: ser_recv(): read error: Device not configured
avrdude: butterfly_recv(): programmer is not responding
avrdude: ser_recv(): read error: Device not configured
avrdude: butterfly_recv(): programmer is not responding
avrdude: ser_send(): write error: Device not configured
avrdude: ser_recv(): read error: Device not configured
avrdude: butterfly_recv(): programmer is not responding
Found programmer: Id = "XQ����"; type = �
Software Version = �.�; Hardware Version = �.�
avrdude: ser_send(): write error: Device not configured
the selected serial port Software Version = �.�; Hardware Version = �.�
does not exist or your board is not connected
avrdude: ser_recv(): read error: Device not configured
avrdude: butterfly_recv(): programmer is not responding
avrdude: ser_send(): write error: Device not configured
avrdude: ser_recv(): read error: Device not configured
avrdude: butterfly_recv(): programmer is not responding
avrdude: error: buffered memory access not supported. Maybe it isn't
a butterfly/AVR109 but a AVR910 device?
avrdude: initialization failed, rc=-1
Double check connections and try again, or use -F to override
this check.

avrdude: ser_send(): write error: Device not configured
avrdude: ser_recv(): read error: Device not configured
avrdude: butterfly_recv(): programmer is not responding
avrdude: error: programmer did not respond to command: leave prog mode
avrdude: ser_send(): write error: Device not configured
avrdude: ser_recv(): read error: Device not configured
avrdude: butterfly_recv(): programmer is not responding
avrdude: error: programmer did not respond to command: exit bootloader
avrdude: ser_close(): can't reset attributes for device: Device not configured

avrdude done. Thank you.

This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.

@w-A-L-L-e
Copy link

w-A-L-L-e commented Oct 14, 2019

Confirm, everything worked fine on mojave, but on catelina flashing with avrdude is broken now.
Even doing it manually with last version of avrdude 6.3 compiled freshly from sources on catalina results in same error:

Flashing main.hex to /dev/cu.usbmodem14101

Connecting to programmer: .avrdude: ser_recv(): read error: Device not configured
avrdude: butterfly_recv(): programmer is not responding

avrdude: ser_recv(): read error: Device not configured
avrdude: butterfly_recv(): programmer is not responding
avrdude: ser_drain(): read error: Device not configured
avrdude: ser_send(): write error: Device not configured
avrdude: ser_recv(): read error: Device not configured
avrdude: butterfly_recv(): programmer is not responding
avrdude: ser_send(): write error: Device not configured
avrdude: ser_recv(): read error: Device not configured
avrdude: butterfly_recv(): programmer is not responding
avrdude: ser_recv(): read error: Device not configured
avrdude: butterfly_recv(): programmer is not responding
avrdude: ser_send(): write error: Device not configured
avrdude: ser_recv(): read error: Device not configured
avrdude: butterfly_recv(): programmer is not responding
Found programmer: Id = ""; type = 
    Software Version = .; Hardware Version = .
avrdude: ser_send(): write error: Device not configured
avrdude: ser_recv(): read error: Device not configured
avrdude: butterfly_recv(): programmer is not responding
avrdude: ser_send(): write error: Device not configured
avrdude: ser_recv(): read error: Device not configured
avrdude: butterfly_recv(): programmer is not responding
avrdude: error: buffered memory access not supported. Maybe it isn't
a butterfly/AVR109 but a AVR910 device?
avrdude: initialization failed, rc=-1
         Double check connections and try again, or use -F to override
         this check.

avrdude: ser_send(): write error: Device not configured
avrdude: ser_recv(): read error: Device not configured
avrdude: butterfly_recv(): programmer is not responding
avrdude: error: programmer did not respond to command: leave prog mode
avrdude: ser_send(): write error: Device not configured
avrdude: ser_recv(): read error: Device not configured
avrdude: butterfly_recv(): programmer is not responding
avrdude: error: programmer did not respond to command: exit bootloader
avrdude: ser_close(): can't reset attributes for device: Device not configured

avrdude done.  Thank you.

Device resets just fine and before reset it's /dev/cu.usbmodemC1 and after toggling reset with 1200bps touch it becomes /dev/cu.usbmodem14101 (same behaviour as on mojave or sierra or other os'es). But after this communication is broken and avrdude does not start writing the hex file. On Sierra, High Sierra and Mojave this issue was not present. It's clearly introduced after the Catelina upgrade on Mac OS (same .hex file, same flashing scripts...) . Temporary switching to linux or windows so that everything works again. f*ing apple is seriously losing it's coolness now that jobs is gone... I can however confirm using an arduino as an isp still works. So it's the leonardo bootloader itself 'Caterina' that's not getting along with 'Catalina' ;)

@facchinm
Copy link
Member Author

Closing since this wasn't the actual problem. See #9290 (comment) for a working fix

@facchinm facchinm closed this Oct 16, 2019
@facchinm facchinm deleted the osx_32u4_upload branch October 16, 2019 15:32
@w-A-L-L-e
Copy link

@facchinm your workaround and patch for caterina bootloader is much appreciated!

@per1234 per1234 added Type: Invalid Off topic for this repository, or a bug report determined to not actually represent a bug Component: Uploading Uploading programs to an Arduino board labels Sep 3, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Component: Uploading Uploading programs to an Arduino board OS: OSX Specific to the Mac OS X (macOS) version of the Arduino IDE Type: Invalid Off topic for this repository, or a bug report determined to not actually represent a bug USB: CDC serial Serial interface used by MCUs with native USB (e.g. Leonardo) to communicate with the computer
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Latest Arduino (1.8.10) cannot program 32u4-based boards under Catalina (Rel. 10.15 Build 19A583)
7 participants